//
//  VRMainTabBar.swift
//  Sina_MicoBlog
//
//  Created by Lee on 16/5/10.
//  Copyright © 2016年 Lee.C. All rights reserved.
//
//在这个tabbar类中,我们需要创建这个button,然后加入到tabbar中.然后位置不同,我们需要拿到他的每一个tabbar中的子控件,怎么拿,就是用for in ,判断他的类,然后对他进行frame的修改,我们需要定义一个index出来,使他第一个时,index *width 1*宽,2*宽,4*宽,5*宽
    //在里面判断一个那个index等于2的时候再加一次就可以了.
    //设置好了位置以后,再修改button的frame在中间就可以了
    //然后我们对这个按钮绑定事件,用属性闭包回调方法

    //这里注意懒加载,只做一次的都写在懒加载里面就可以了,所以创建按钮,按钮的图片,按钮的加入到tabbar中,添加绑定事件可以写到懒加载中



import UIKit

class VRMainTabBar: UITabBar {

    var addButton: (() -> ())?
    
  
//    func ModalOne(button: UIButton){
//     
//        addButton?()
//    }
    //设置中间的button
    override func layoutSubviews() {
        super.layoutSubviews()
        
        let width = self.frame.width / 5
        var index = 0
        for view in self.subviews{
            if view.isKindOfClass(NSClassFromString("UITabBarButton")!){
            view.frame = CGRectMake(width * CGFloat(index), 0, width, self.frame.height)
            index++
                if index == 2 {
                index++
                }
            }
            
            composeButton.frame = CGRectMake(width * 2, 0, width, self.frame.height)
        }
    }
    
    //MARK: - 回调方法
    
    func ModalOne (button: UIButton){
    
        addButton?()
    
    }
 
    //MARK: - 懒加载
    lazy var composeButton: UIButton = {
    
    let button = UIButton(type: UIButtonType.Custom)
        
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: UIControlState.Normal)
        button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: UIControlState.Selected)
        
        button.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: UIControlState.Normal)
        button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: UIControlState.Selected)
        
        self.addSubview(button)
        
        button.addTarget(self, action:"ModalOne:", forControlEvents: UIControlEvents.TouchUpInside)
    
        return button
  
    }()

}
